
import pandas as pd

# 读取第一个Excel，从第二行开始（skiprows=1），并指定列名
df1 = pd.read_excel(
    '/Users/wangyu/Downloads/上海宝信医院层级账号.xlsx',
    skiprows=1,
    names=['省份登录编码', '省份名称', '医院登录编码', '医院名称']
)
# 读取第二个Excel，从第二行开始（skiprows=1），并指定列名
df2 = pd.read_excel(
    '/Users/wangyu/Downloads/中心旗舰医院存量账号.xlsx',
    skiprows=1,
    names=['省局名称', '医院名称']
)

# 新增两列
df1['是否匹配'] = ''
df1['匹配省局名称'] = ''

# 构建医院名称到省局名称的映射
hospital_to_director = {str(row['医院名称']).strip(): str(row['省局名称']).strip() for _, row in df2.iterrows()}

# 记录已匹配的医院名称
matched_hospitals = set()

# 遍历df1，按医院名称匹配
for idx, row in df1.iterrows():
    hospital_name = str(row['医院名称']).strip()
    if hospital_name in hospital_to_director:
        df1.at[idx, '是否匹配'] = '是'
        df1.at[idx, '匹配省局名称'] = hospital_to_director[hospital_name]
        matched_hospitals.add(hospital_name)

# 对于df2中未匹配的医院，插入到df1
for _, row in df2.iterrows():
    hospital_name = str(row['医院名称']).strip()
    if hospital_name not in matched_hospitals:
        # 构造一行新数据，省份相关字段留空
        new_row = {
            '省份登录编码': '',
            '省份名称': '',
            '医院登录编码': '',
            '医院名称': hospital_name,
            '是否匹配': '否',
            '匹配省局名称': str(row['省局名称']).strip()
        }
        df1 = pd.concat([df1, pd.DataFrame([new_row])], ignore_index=True)

# 保存结果
df1.to_excel('merged_resultV2.xlsx', index=False)
print("Excel文件合并完成，结果已保存为merged_resultV2.xlsx")
